/**
 * *****************************************************************************
 * Copyright 2022 Karsten Hahn
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ****************************************************************************
 */
package com.github.struppigel.parser.sections.clr;

import com.github.struppigel.parser.HeaderKey;
import com.github.struppigel.parser.HeaderKey;

public enum CLRTableKey implements HeaderKey {
    MODULE_GENERATION,
    MODULE_NAME,
    MODULE_MVID,
    MODULE_ENCID,
    MODULE_ENCBASEID,

    TYPEREF_RESOLUTION_SCOPE,
    TYPEREF_TYPE_NAME,
    TYPEREF_TYPE_NAMESPACE,

    TYPEDEF_FLAGS,
    TYPEDEF_TYPE_NAME,
    TYPEDEF_TYPE_NAMESPACE,
    TYPEDEF_EXTENDS,
    TYPEDEF_FIELDLIST,
    TYPEDEF_METHODLIST,

    FIELD_FLAGS,
    FIELD_NAME,
    FIELD_SIGNATURE,

    METHOD_RVA,
    METHOD_IMPLFLAGS,
    METHOD_FLAGS,
    METHOD_NAME,
    METHOD_SIGNATURE,
    METHOD_PARAMLIST,

    PARAM_FLAGS,
    PARAM_SEQUENCE,
    PARAM_NAME,

    INTERFACEIMPL_CLASS,
    INTERFACEIMPL_INTERFACE,

    MEMBERREF_CLASS,
    MEMBERREF_NAME,
    MEMBERREF_SIGNATURE,

    CUSTOMATTRIBUTE_PARENT,
    CUSTOMATTRIBUTE_TYPE,
    CUSTOMATTRIBUTE_VALUE,

    FIELDMARSHAL_PARENT,
    FIELDMARSHAL_NATIVETYPE,

    CLASSLAYOUT_PACKINGSIZE,
    CLASSLAYOUT_CLASSSIZE,
    CLASSLAYOUT_PARENT,

    FIELDLAYOUT_OFFSET,
    FIELDLAYOUT_FIELD,

    STANDALONESIG_SIGNATURE,

    PROPERTYMAP_PARENT,
    PROPERTYMAP_PROPERTYLIST,

    PROPERTY_FLAGS,
    PROPERTY_NAME,
    PROPERTY_TYPE,

    METHODSEMANTICS_SEMANTICS,
    METHODSEMANTICS_METHOD,
    METHODSEMANTICS_ASSOCIATION,

    METHODIMPL_CLASS,
    METHODIMPL_METHODBODY,
    METHODIMPL_METHODDECLARATION,

    MODULEREF_NAME,

    TYPESPEC_SIGNATURE,

    IMPLMAP_MAPPINGFLAGS,
    IMPLMAP_MEMBERFORWARDED,
    IMPLMAP_IMPORTNAME,
    IMPLMAP_IMPORTSCOPE,

    FIELDRVA_RVA,
    FIELDRVA_FIELD,

    ASSEMBLY_HASHALGID,
    ASSEMBLY_MAJORVERSION,
    ASSEMBLY_MINORVERSION,
    ASSEMBLY_BUILDNUMBER,
    ASSEMBLY_REVISIONNUMBER,
    ASSEMBLY_FLAGS,
    ASSEMBLY_PUBLICKEY,
    ASSEMBLY_NAME,
    ASSEMBLY_CULTURE,

    ASSEMBLYPROCESSOR_PROCESSOR,

    ASSEMBLYREFPROCESSOR_PROCESSOR,
    ASSEMBLYREFPROCESSOR_ASSEMBLYREF,

    ASSEMBLYOS_OSPLATFORMID,
    ASSEMBLYOS_OSMAJORVERSION,
    ASSEMBLYOS_OSMINORVERSION,

    ASSEMBLYREF_MAJORVERSION,
    ASSEMBLYREF_MINORVERSION,
    ASSEMBLYREF_BUILDNUMBER,
    ASSEMBLYREF_REVISIONNUMBER,
    ASSEMBLYREF_FLAGS,
    ASSEMBLYREF_PUBLICKEYORTOKEN,
    ASSEMBLYREF_NAME,
    ASSEMBLYREF_CULTURE,
    ASSEMBLYREF_HASHVALUE,

    ASSEMBLYREFOS_OSPLATFORMID,
    ASSEMBLYREFOS_OSMAJORVERSION,
    ASSEMBLYREFOS_OSMINORVERSION,
    ASSEMBLYREFOS_ASSEMBLYREF,

    MANIFESTRESOURCE_OFFSET,
    MANIFESTRESOURCE_FLAGS,
    MANIFESTRESOURCE_NAME,
    MANIFESTRESOURCE_IMPLEMENTATION,

    NESTEDCLASS_NESTEDCLASS,
    NESTEDCLASS_ENCLOSINGCLASS,

    GENERICPARAM_NUMBER,
    GENERICPARAM_FLAGS,
    GENERICPARAM_OWNER,
    GENERICPARAM_NAME,

    GENERICPARAMCONSTRAINT_OWNER,
    GENERICPARAMCONSTRAINT_CONSTRAINT,

    FILE_FLAGS,
    FILE_NAME,
    FILE_HASHVALUE,

    METHODSPEC_METHOD,
    METHODSPEC_INSTANTIATION,

    CONSTANT_TYPE,
    CONSTANT_PADDING,
    CONSTANT_PARENT,
    CONSTANT_VALUE,

    DECLSECURITY_ACTION,
    DECLSECURITY_PARENT,
    DECLSECURITY_PERMISSIONSET,

    EVENTMAP_PARENT,
    EVENTMAP_EVENTLIST,

    EVENT_EVENTFLAGS,
    EVENT_NAME,
    EVENT_EVENTTYPE,

    EXPORTEDTYPE_FLAGS,
    EXPORTEDTYPE_TYPEDEFID,
    EXPORTEDTYPE_TYPENAME,
    EXPORTEDTYPE_TYPENAMESPACE,
    EXPORTEDTYPE_IMPLEMENTATION,
}
